Existing methods of managing processing resources of multiple instances of software functions running simultaneously include time slicing and background processing. When total processing capacity is reached or surpassed, these methods prioritize processing operations by executing high priority functions in the foreground in realtime with lower priority functions executing In reply to: the background after the foreground functions are completed. An Echo cancellation unit (ECU) typically has multiple instances running over one or more channels. The processing methods in the prior art allocate MIPS (millions of instructions per second ) to ECU instances that may not require them or are not executing priority functions. Time slicing allocates processing resources to all functions or instances, whether or not processing resources are required for a particular instance or function. Furthermore, the number of simultaneous instances is limited directly by processing resources.
What is needed, therefore, is a realtime application for an ECU that redistributes processing resources among ECU instance functions based on ECU state information, state resource requirements, and available processing resources so as to optimize aggregate ECU instance performance without exceeding the total processing resources.